#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define sld(n) scanf("%lld",&n)
#define pd(n) printf("%d", (n))
#define pld(n) printf("%lld", n)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
const int N=2e5;
#define INF 0x7fffffff
typedef long long int ll;
using namespace std;
//----------------------------------------------------------------------------//
//所有的值都不同
int a[N+10];
void solve()
{
	int n;
	sd(n);
	for(int i=1;i<=n;i++) sd(a[i]);
	int sum=0;
	int m;
	sd(m);
	while(m--)
	{
		int t;sd(t);
		t%=n;
		sum+=t;
		sum%=n;
	}
	pd(a[sum+1]);puts("");

}

int main()
{
	int T;
	sd(T);
	while (T--)
	{
		solve();
	}
	return 0;
}
//然后他让你洗牌m次。在第j次洗牌时，
//你应该取bj张最上面的牌，并在不改变顺序的情况下将它们移动到剩下的(n - bj)张牌下面。


//然后，使用一些魔法，Monocarp告诉你一副牌中最上面的一张。然而，你并不是真的相信这种魔力。
//你告诉他你自己知道最上面的牌。你能给Monocarp一个惊喜吗，在他展示最上面的卡片之前告诉他?